﻿using System;
using System.Collections.Generic;

namespace GC_FFW.BusinessEntities.Abstractions.Interfaces.Forecast
{
	public interface IMatch : ICloneable
	{
		#region Properties

		string HomeTeamName { get; set; }

		string AwayTeamName { get; set; }

		int HomeTeamGoalsCount { get; set; }

		int AwayTeamGoalsCount { get; set; }

		int TotalGoalsCount { get; }

		string MatchResult { get; }

		string MatchResultWithNames { get; }

		string MatchResultWithDate { get; }

		bool HasWinner { get; }

		bool IsHomeTeamWin { get; }

		bool IsAwayTeamWin { get; }

		string WinnerName { get; }

		DateTime Date { get; set; }

		IEnumerable<IGoal> Goals { get; set; }

		#endregion

		#region Methods

		IGoal GetGoal(int number);

		IGoal GetGoalByTime(int time);

		string GetMatchResultAfterGoal(int goalNumber);

		string GetGoalscorersAfterGoal(int goalNumber);

		bool IsTeamWin(string teamName);

		int TeamGoalsCount(string teamName);

		int OpponentTeamGoalsCount(string teamName);

		string OpponentTeamName(string teamName);

		void Update(IMatch match);

		#endregion
	}
}
